namespace ColladaDotNet
{
	/// <remarks/>
	[System.Xml.Serialization.XmlIncludeAttribute(typeof(cg_surface_type))]
	[System.Xml.Serialization.XmlIncludeAttribute(typeof(glsl_surface_type))]
    
	[System.SerializableAttribute()]
    
    
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.collada.org/2005/11/COLLADASchema")]
	public partial class fx_surface_common {
        
		private object init_as_nullField;
        
		private object init_as_targetField;
        
		private fx_surface_init_cube_common init_cubeField;
        
		private fx_surface_init_volume_common init_volumeField;
        
		private fx_surface_init_planar_common init_planarField;
        
		private fx_surface_init_from_common[] init_fromField;
        
		private string formatField;
        
		private fx_surface_format_hint_common format_hintField;
        
		private object itemField;
        
		private uint mip_levelsField;
        
		private bool mipmap_generateField;
        
		private bool mipmap_generateFieldSpecified;
        
		private extra[] extraField;
        
		private fx_surface_type_enum typeField;
        
		public fx_surface_common() {
			this.mip_levelsField = ((uint)(0));
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("init_as_null")]
		public object init_as_null {
			get {
				return this.init_as_nullField;
			}
			set {
				this.init_as_nullField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("init_as_target")]
		public object init_as_target
		{
			get {
				return this.init_as_targetField;
			}
			set {
				this.init_as_targetField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("init_cube")]
		public fx_surface_init_cube_common init_cube
		{
			get {
				return this.init_cubeField;
			}
			set {
				this.init_cubeField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("init_volume")]
		public fx_surface_init_volume_common init_volume {
			get {
				return this.init_volumeField;
			}
			set {
				this.init_volumeField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("init_planar")]
		public fx_surface_init_planar_common init_planar {
			get {
				return this.init_planarField;
			}
			set {
				this.init_planarField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("init_from")]
		public fx_surface_init_from_common[] init_from {
			get {
				return this.init_fromField;
			}
			set {
				this.init_fromField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(DataType="token")]
		public string format {
			get {
				return this.formatField;
			}
			set {
				this.formatField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("format_hint")]
		public fx_surface_format_hint_common format_hint {
			get {
				return this.format_hintField;
			}
			set {
				this.format_hintField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("size", typeof(long))]
		[System.Xml.Serialization.XmlElementAttribute("viewport_ratio", typeof(double))]
		public object Item {
			get {
				return this.itemField;
			}
			set {
				this.itemField = value;
			}
		}
        
		/// <remarks/>
		[System.ComponentModel.DefaultValueAttribute(typeof(uint), "0")]
		public uint mip_levels {
			get {
				return this.mip_levelsField;
			}
			set {
				this.mip_levelsField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("mipmap_generate")]
		public bool mipmap_generate {
			get {
				return this.mipmap_generateField;
			}
			set {
				this.mipmap_generateField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlIgnoreAttribute()]
		public bool mipmap_generateSpecified {
			get {
				return this.mipmap_generateFieldSpecified;
			}
			set {
				this.mipmap_generateFieldSpecified = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("extra")]
		public extra[] extra {
			get {
				return this.extraField;
			}
			set {
				this.extraField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute()]
		public fx_surface_type_enum type {
			get {
				return this.typeField;
			}
			set {
				this.typeField = value;
			}
		}
	}
}